package cn.iocoder.yudao.module.im.controller.app.member.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "用户 APP - IM会话分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class AppMemberConversationPageReqVO extends PageParam {

    @Schema(description = "分组ID", example = "9715")
    private Long groupId;

    @Schema(description = "分组类型", example = "1")
    private Integer groupType;

    @Schema(description = "分组封面")
    private String groupLogo;

    @Schema(description = "会话用户ID", example = "5188")
    private Long byUserId;

    @Schema(description = "会话所属用户ID", example = "19244")
    private Long userId;

    @Schema(description = "最后聊天时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastMessageTime;

    @Schema(description = "最后聊天内容")
    private String lastMessageContent;

    @Schema(description = "最后发送的消息类型", example = "2")
    private Integer lastMessageContentType;

    @Schema(description = "最后发送的消息是否已读", example = "1")
    private String lastMessageReadStatus;

    @Schema(description = "置顶")
    private String pinned;

    @Schema(description = "未读消息数", example = "27068")
    private Integer unreadMessageCount;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}